(()=>{"use strict";const e="1.8.44",t={async getUser(){return this.getUserSync()},getUserSync(){try{const e=Object.entries(localStorage).find((([e])=>e.startsWith("oidc.user:")));return e?JSON.parse(e[1]):null}catch(e){return console.warn("Anonymised: Error retrieving user from localStorage:",e),null}},queueLogin(){}};let n;!function(e){e.IdwHydraHasErrorKey="IDW_HYDRA_HAS_ERROR",e.IdwCohortIdsKey="cohort_ids",e.idwScrollY="idw-scroll-y",e.IdwImpressionsKey="idw-impressions",e.anonymised="Anonymised",e.isOofUrl="idw-oof",e.idwOutdated="idw-outdated",e.AnonSignalLift="anon-sl",e.AnonSignalLiftGroup="anon-sl-group",e.AnonSignalLiftGroupNoUser="anon-sl-group-no-user",e.AnonSignalLiftGroupTimestamp="anon-sl-group-ts",e.AnonSignalLiftGroupSession="anon-sl-group-session",e.AnonUserSync="anon-hndshk",e.AnonAudienceMemberId="anon-audience-member",e.AnonAudienceMeta="anon-audiences-meta",e.AnonAudienceGoogle="anon-audiences-google"}(n||(n={}));const o=e=>{try{const t="https://api.anonymised.io/v2/debug",n=JSON.stringify(e);fetch(t,{method:"POST",body:n,headers:{"Content-Type":"application/json"},keepalive:!0}).catch((()=>{}))}catch(e){}};let i=null;const s=e=>{try{const t=e.match(/[?&]ppid=([^&]+)/);return t?decodeURIComponent(t[1]):void 0}catch{return}},r=e=>{try{const t=e.match(/[?&]ppss=([^&]+)/);return t?decodeURIComponent(t[1]):void 0}catch{return}},a=8;function d(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const l=new class{constructor(){g(this,"pageViewId",void 0),g(this,"pageCount",void 0),g(this,"sessionIdValue",void 0),g(this,"totalPageCount",void 0),this.pageViewId=this.generatePageViewId(),this.sessionIdValue=this.getOrCreateSessionId(),this.pageCount=this.getOrInitializePageCount(),this.totalPageCount=this.incrementTotalPageCount(),this.updatePageViewId()}getCookie(e){const t=`; ${document.cookie}`.split(`; ${e}=`);if(2===t.length)return t.pop().split(";").shift()}setCookie(e,t,n){const o=new Date;o.setTime(o.getTime()+24*n*60*60*1e3);const i=`expires=${o.toUTCString()}`;document.cookie=`${e}=${t};${i};path=/`}getOrCreateFeId(){const e="idw-fe-id";let t=localStorage.getItem(e);return t||(t=this.getCookie(e),t?localStorage.setItem(e,t):(t=d(),localStorage.setItem(e,t),this.setCookie(e,t,365))),t}getOrCreateSessionId(){const e="idw-session-id";let t=sessionStorage.getItem(e);return t||(t=d(),sessionStorage.setItem(e,t)),t}getOrInitializePageCount(){const e="idw-page-count",t=sessionStorage.getItem(e),n=t?parseInt(t,10)+1:1;return sessionStorage.setItem(e,n.toString()),n}incrementTotalPageCount(){const e="idw-total-page-count",t=localStorage.getItem(e),n=t?parseInt(t,10)+1:1;return localStorage.setItem(e,n.toString()),n}generatePageViewId(){return d()}updatePageViewId(){this.pageViewId=this.generatePageViewId()}get id(){return this.pageViewId}get sessionId(){return this.sessionIdValue}get feId(){return this.getOrCreateFeId()}get count(){return this.pageCount}get totalCount(){return this.totalPageCount}},c="h";let u=null;const p=(e,t)=>{if(!e)return"t";return(e=>{let t=0;for(let n=0;n{window.googletag=window.googletag||{cmd:[]},window.googletag.cmd.push((()=>{try{const d=JSON.parse(window.localStorage.getItem(n.AnonSignalLift)||"{}"),g=window._anonymised_tag?.preloadedConfig;!g||void 0===g.ppidEnabled&&void 0===g.ppsEnabled||(d.settings={...d.settings||{},ppidEnabled:"true"===g.ppidEnabled,ppsEnabled:"true"===g.ppsEnabled},g.clientId&&(d.clientId=g.clientId));const f=t.getUserSync();f?.profile?.cuid&&(d.cuid=f.profile.cuid);const w=(e=>{let t=0;return e?.settings?(e?.settings?.ppidEnabled&&e?.cuid&&(t|=1),e?.settings?.ppsEnabled&&e?.iabAudience&&e?.iabAudience?.length&&(t|=2),e?.settings?.secureSignalsEnabled&&(t|=4),t):"undefined"})(d),m=(e=>{let t=0;return e?.settings?(e?.settings?.ppidEnabled&&(t|=1),e?.settings?.ppsEnabled&&(t|=2),e?.settings?.secureSignalsEnabled&&(t|=4),t):"undefined"})(d);if("undefined"===w)return;const h=((e,t)=>{if(!t||"undefined"===t||0===t)return localStorage.removeItem(n.AnonSignalLiftGroup),localStorage.removeItem(n.AnonSignalLiftGroupNoUser),localStorage.removeItem(n.AnonSignalLiftGroupTimestamp),null;if(!e)return"t";const o=window.location.hostname,i=o.includes("standard.co.uk")||o.includes("independent.co.uk");return p(e,i?20:3)})(d.cuid??l.feId,m);let I,y;h?sessionStorage.setItem(n.AnonSignalLiftGroupSession,h):sessionStorage.removeItem(n.AnonSignalLiftGroupSession),d.targeting=[{key:n.anonymised+"SignalLift",value:h===c?a.toString():w.toString()}],d?.settings?.ppidEnabled&&d?.cuid&&h!==c&&(window.googletag.pubads().setPublisherProvidedId(d.cuid),I=d.cuid),d?.settings?.ppsEnabled&&d?.iabAudience&&d?.iabAudience?.length&&h!==c&&(window.googletag.setConfig({pps:{taxonomies:{IAB_AUDIENCE_1_1:{values:d.iabAudience}}}}),y=d.iabAudience.toString()),d.targeting&&Array.isArray(d.targeting)&&d.targeting.forEach((e=>{e?.key&&void 0!==e?.value&&window.googletag.pubads().setTargeting(e.key,e.value)})),window._anonymised_tag=window._anonymised_tag||{},window._anonymised_tag.signalLift=d,u=((e,t,o,i,s,r,a,d)=>{const g=d??localStorage.getItem(n.AnonSignalLiftGroup);return{cuid:o,ppidSet:i,kv:e.toString(),expKv:t.toString(),ppssSet:s,gamPpid:r,gamPpss:a,group:g,sessionId:l.sessionId,pageViewId:l.id,feId:l.feId,sessionCount:l.count.toString(),totalCount:l.totalCount.toString(),pageLoadOffsetMs:void 0,trigger:void 0}})(d?.targeting[0]?.value,m,d.cuid,I,y,void 0,void 0,h),f?.profile&&!f?.profile.cuid&&(u.cuid="failed-profile");const S={...u,pageLoadOffsetMs:performance.now().toFixed(2),trigger:e};o(S),(e=>{if(e){i&&(i.disconnect(),i=null);try{const t=new PerformanceObserver((n=>{for(const a of n.getEntries())if("resource"===a.entryType){const n=a,d=n.name;if(d.includes("securepubads.g.doubleclick.net/gampad/ads")&&d.includes("gdfp_req=1")){const a=s(d),g=r(d),l={...e,gamPpid:a,gamPpss:g,pageLoadOffsetMs:n.startTime.toFixed(2),trigger:"gam-intercept"};o(l),t.disconnect(),i=null;break}}}));i=t;try{t.observe({type:"resource",buffered:!0})}catch{t.observe({entryTypes:["resource"]})}}catch(e){}}})(u)}catch(e){console.warn(`${n.AnonSignalLift} set GPT params error`,e)}}))};const w=()=>{const e=JSON.parse(window.localStorage.getItem(n.AnonSignalLift)||"{}");e?.settings?.ppsEnabled&&(console.info("[GPT PATCH] Initializing googletag.setConfig patch"),window.googletag=window.googletag||{cmd:[]},window.googletag.cmd.push((function(){if("function"!=typeof window.googletag.setConfig)return void console.warn("[GPT PATCH] googletag.setConfig is not available");const e=window.googletag.setConfig;let t=null;console.info("[GPT PATCH] googletag.setConfig successfully patched"),window.googletag.setConfig=function(...n){const o=n[0],i=o?.pps?.taxonomies?.IAB_AUDIENCE_1_1?.values;if(o?.pps){const e=!Array.isArray(i)||0===i.length;if(e&&t)return void console.warn("[GPT PATCH] Blocked destructive PPS overwrite",{attemptedAudience:i,preservedAudience:t,config:o});e||(t=i,console.log("[GPT PATCH] Stored valid IAB audience",i))}return console.log("[GPT PATCH] Passing setConfig through",o),e.apply(this,n)}})))},m=(e,t)=>e&&""!==e?e:t,h=["NTU="],I=()=>{const e=JSON.parse(window.localStorage.getItem(n.AnonSignalLift)||"{}"),o=m(window._anonymised_tag?.preloadedConfig?.clientId,e?.clientId),i=(s=window._anonymised_tag?.preloadedConfig?.ppidEnabled,r=e?.settings?.ppidEnabled,void 0!==s?"true"===s:r);var s,r;const a=o&&h.includes(o);i&&!a&&(window.googletag=window.googletag||{cmd:[]},window.googletag.cmd.push((function(){const e=window.googletag.pubads?.();if(!e)return;if(e.__signalLiftPpidPatched)return;const o=e.setPublisherProvidedId;"function"==typeof o?(e.setPublisherProvidedId=function(e){const i=JSON.parse(window.localStorage.getItem(n.AnonSignalLift)||"{}");if("h"===sessionStorage.getItem(n.AnonSignalLiftGroupSession)){return"NDEx"===m(window._anonymised_tag?.preloadedConfig?.clientId,i?.clientId)?(console.info("[PPID PATCH] Allowing third-party PPID for The Independent in holdout group",{original:e}),o.call(this,e)):void console.info("[PPID PATCH] Blocking PPID set because user is in holdout group",{original:e})}const s=t.getUserSync(),r=s?.profile?.cuid||i?.cuid;if(r)return console.info("[PPID PATCH] Injecting PPID",{original:e,injected:r}),o.call(this,r);console.info("[PPID PATCH] Blocking PPID because CUID is not available",{original:e})},e.__signalLiftPpidPatched=!0,console.info("[PPID PATCH] setPublisherProvidedId patched")):console.warn("[PPID PATCH] setPublisherProvidedId not available")})))},y=()=>{try{w()}catch(e){console.warn("Anonymised tag: patchGptConfig error:",e)}try{I()}catch(e){console.warn("Anonymised tag: patchGptSetPpid error:",e)}try{window.googletag=window.googletag||{cmd:[]},window.googletag.cmd.push((()=>{if(!window.googletag?.pubads)return;const e=window.googletag.pubads();if(e.__refreshPatched)return;const t=e.refresh;t?(e.refresh=function(...n){try{const t=window._anonymised_tag?.signalLift?.targeting;t?.length?t.forEach((t=>{t?.key&&void 0!==t?.value&&(e.setTargeting(t.key,t.value),console.info("[REFRESH PATCH] Injecting targeting",{key:t.key,value:t.value}))})):console.debug("[REFRESH PATCH] No targeting data available, skipping injection")}catch(e){console.warn("[REFRESH PATCH] Failed to apply targeting before GPT refresh",e)}return t.apply(e,n)},e.__refreshPatched=!0,console.info("[REFRESH PATCH] pubads.refresh patched")):console.warn("[REFRESH PATCH] pubads.refresh not available")}))}catch(e){console.warn("Anonymised tag: patchGptRefresh error:",e)}}; window._anonymised_tag = window._anonymised_tag || {}; window._anonymised_tag.preloadedConfig = {"clientId":"MjI1OA==","notLoginUser":"false","cmpProvider":"onetrust","cmpProviderCookieGroup":"C0004","retargetingOn":"true","extendLoginToSubdomains":"false","gptTargeting":"true","loginInNewTab":"true","iframeLogin":"true","ppsEnabled":"true","ppidEnabled":"true","secureSignalsEnabled":"false","userSyncEnabled":"false","fbPixelOn":"true","fbPixelCoreOn":"false","fbPixelCohortIds":"24819,5591","gtmOn":"false"}; try{const t=document.currentScript;if(!t?.src)throw new Error("loader.js script source not found, cannot load Anonymised tag");if(window.self!==window.top)throw new Error("Anonymised tag will not start. Not running in the top frame");const n=Array.from(t.attributes),o=t.src.split("/").pop()||"";if(!o.startsWith("loader.js")&&!o.startsWith("idw_plugin_light.min.js"))throw new Error("Unexpected loader script name");let i=t.src.replace(o,"");i.includes("static.anonymised.io")?i=i.replace("static.anonymised.io","cdn1.anonymised.io"):i.includes("material.dev.anonymised.io")&&(i="https://storage.googleapis.com/idward-cmp-v2-dev/light/");const s=i+"bundle.js"+`?v=${e}`,r=i+"auth.js"+`?v=${e}`,a=Array.from(document.scripts),d=a.some((e=>e.src===s)),g=a.some((e=>e.src===r||e.src.includes("static.anonm.io")&&e.src.includes("auth.js")));if(d)throw new Error("Anonymised tag already present: bundle.js, skipping re-initialization");y();const l=document.createElement("script");n.forEach((e=>{l.setAttribute(e.name,e.value)})),l.setAttribute("src",s),l.onerror=()=>{console.warn("Anonymised tag: Failed to load bundle.js")};const c=document.head||document.documentElement;if(c.appendChild(l),!g){const e=document.createElement("script");e.setAttribute("src",r),e.onerror=()=>{console.warn("Anonymised tag: Failed to load auth.js")},c.appendChild(e)}f(),window.addEventListener("anonUserSignedIn",(()=>{setTimeout((()=>f("user-signin")),1500)}))}catch(e){console.warn("Anonymised tag: Initialization error:",e)}})();